package pe.edu.sistemas.postgrado.samupg.business.service.impl.planificacion;

import java.math.BigDecimal;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import pe.edu.sistemas.postgrado.samupg.business.service.marketing.PeriodoService;
import pe.edu.sistemas.postgrado.samupg.business.service.planificacion.FichaInscripcionService;
import pe.edu.sistemas.postgrado.samupg.domain.model.FichaInscripcion;
import pe.edu.sistemas.postgrado.samupg.domain.model.RegistroNotas;
import pe.edu.sistemas.postgrado.samupg.domain.model.Periodo;
import pe.edu.sistemas.postgrado.samupg.repository.dao.FichaInscripcionDAO;
import pe.edu.sistemas.postgrado.samupg.repository.dao.RegistroNotasDAO;

/**
 *
 * @author Marlon
 */
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class FichaInscripcionServiceImpl implements FichaInscripcionService {

    @Resource
    private FichaInscripcionDAO fichaInscripcionDAO;
    @Resource
    private RegistroNotasDAO registroNotasDAO;

    @Override
    @Transactional(propagation = Propagation.REQUIRED, readOnly = false)
    public void crearFichaInscripcion(FichaInscripcion fi) {
        fichaInscripcionDAO.crearFichaInscripcion(fi);

        RegistroNotas registroNotas = new RegistroNotas();
        registroNotas.setRnProf1("");
        registroNotas.setRnProf2("");
        registroNotas.setRnProf3("");
        registroNotas.setRnNotaFase1(null);
        registroNotas.setRnNotaFase2(null);
        registroNotas.setFichaInscripcion(fi);

        registroNotasDAO.crearRegistroNotas(registroNotas);
    }

    @Override
    public List<FichaInscripcion> getFichasxIdUsuario(Integer idUsuario) {
        return fichaInscripcionDAO.getFichasxIdUsuario(idUsuario);
    }

    @Override
    public FichaInscripcion getFichaxId(Integer idFicha) {
        return fichaInscripcionDAO.getFichaxId(idFicha);
    }
    
    @Override
    public List<FichaInscripcion> getFichasxPeriodo(Periodo Periodo){
        return fichaInscripcionDAO.getFichaxIdPeriodo(Periodo);
    }

    @Override
    public String modificarFichaInscripcion(FichaInscripcion fi) {
        return fichaInscripcionDAO.modificarFichaInscripcion(fi);
    }

    @Override
    public List<FichaInscripcion> getFichasxPeriodoAndPago(Periodo Periodo, boolean pago) {
        return fichaInscripcionDAO.getFichaxIdPeriodoAndPago(Periodo, pago);
    }

  
}
